ããããèŠæš¡ã®ããŒã ã«åããGitã¯ãŒã¯ãããŒã®å æ¬çã¬ã€ããGitãã©ã³ãããã«ãªã¯ãšã¹ããã³ãŒãã¬ãã¥ãŒã广çã«æŽ»çšããã³ã©ãã¬ãŒã·ã§ã³ãšãœãããŠã§ã¢å質ãåäžãããæ¹æ³ãåŠã³ãŸãã
å ±åéçºã®ããã®Gitã¯ãŒã¯ãããŒããã¹ã¿ãŒãã
ããŒãžã§ã³ç®¡çã¯ãçŸä»£ã®ãœãããŠã§ã¢éçºã®ç€ã§ããããã«ãããããŒã ã¯å€æŽã远跡ãã广çã«å ±åäœæ¥ãè¡ããè€éãªãããžã§ã¯ãã管çããããšãã§ããŸããæã人æ°ã®ããããŒãžã§ã³ç®¡çã·ã¹ãã ã§ããGitã¯ãæè»ãªãã¬ãŒã ã¯ãŒã¯ãæäŸããŸããããã®åã«ã¯è²¬ä»»ã䌎ããŸããããã¯ãæ£ããã¯ãŒã¯ãããŒãéžæããããšã§ãããã®ã¬ã€ãã§ã¯ãããŸããŸãªGitã¯ãŒã¯ãããŒããã®é·æãšçæãæ¢ããããŒã ã«æé©ãªã¢ãããŒããéžæããããã®å®è·µçãªã¬ã€ãã³ã¹ãæäŸããŸãã
Gitã¯ãŒã¯ãããŒã¯ãªãéèŠãïŒ
å®çŸ©ãããã¯ãŒã¯ãããŒããªããšãGitã¯ããã«æ··æ²ãšããŠããŸããŸããããŒã ã¯äºãã®äœæ¥ãäžæžãããããç¥ããç¥ããã®ãã¡ã«ãã°ãæ··å ¥ãããããæ°æ©èœã®çµ±åã«èŠåŽãããããå¯èœæ§ããããŸããæç¢ºã«å®çŸ©ãããGitã¯ãŒã¯ãããŒã¯ãæ§é ãšæç¢ºããããããã以äžã®ãããªçµæã«ã€ãªãããŸãïŒ
- ã³ã©ãã¬ãŒã·ã§ã³ã®åäžïŒã³ãŒããã³ã³ããªãã¥ãŒãããããã®ããã»ã¹ãæç¢ºã«å®çŸ©ãããŠããããã誰ããé¢é£ããæé ãçè§£ããæ··ä¹±ãã³ã³ããªã¯ããæžããããšãã§ããŸãã
- ã³ãŒãå質ã®åäžïŒã¯ãŒã¯ãããŒã«ã¯å€ãã®å Žåã³ãŒãã¬ãã¥ãŒãçµã¿èŸŒãŸããŠãããããŒãžãããåã«è€æ°ã®éçºè ã倿Žãæ€æ»ããããšã§ãæœåšçãªåé¡ãæ©æã«çºèŠã§ããŸãã
- éçºãµã€ã¯ã«ã®é«éåïŒéçºããã»ã¹ãåçåããããšã§ãããŒã ã¯æ©èœããã°ä¿®æ£ãããè¿ éãã€å¹ççã«æäŸã§ããŸãã
- ãªã¹ã¯ã®äœæžïŒãã©ã³ãæŠç¥ã«ãããããŒã ã¯å€æŽãåé¢ããã¡ã€ã³ã®ã³ãŒãããŒã¹ãç Žå£ããããšãªãæ°æ©èœã詊ãããšãã§ããŸãã
- ãã¬ãŒãµããªãã£ã®åäžïŒGitã®å±¥æŽè¿œè·¡æ©èœãšäžè²«ããã¯ãŒã¯ãããŒãçµã¿åãããããšã§ã倿Žãã©ã®ããã«ããããŠãªãè¡ãããã®ããçè§£ãããããªããŸãã
äžè¬çãªGitã¯ãŒã¯ãããŒ
ããã€ãã®äººæ°ã®ããGitã¯ãŒã¯ãããŒãç»å ŽããŠãããããããã«é·æãšçæããããŸããæãäžè¬çãªã¢ãããŒãã®ããã€ããèŠãŠã¿ãŸãããïŒ
1. éäžåã¯ãŒã¯ãããŒ
éäžåã¯ãŒã¯ãããŒã¯æãã·ã³ãã«ãªGitã¯ãŒã¯ãããŒã§ãããSubversion (SVN) ã®ãããªä»ã®ããŒãžã§ã³ç®¡çã·ã¹ãã ããç§»è¡ããŠããããŒã ã«ãã䜿çšãããŸããããã¯åäžã®mainãã©ã³ãïŒä»¥åã¯masterãšããŠç¥ãããŠããïŒãäžå¿ã«å±éãããŸããéçºè
ã¯ãã®äžå€®ãã©ã³ãã«çŽæ¥å€æŽãã³ãããããŸãã
ä»çµã¿ïŒ
- éçºè
ã¯
mainãã©ã³ãããææ°ã®å€æŽããã§ããããŸãã - ããŒã«ã«ã§å€æŽãå ããŸãã
- ããŒã«ã«ã§å€æŽãã³ãããããŸãã
- 倿Žã
mainãã©ã³ãã«ããã·ã¥ããŸãã
é·æïŒ
- çè§£ãããããå®è£ ãç°¡åã
- 䞊è¡éçºãæå°éã®å°èŠæš¡ããŒã ã«é©ããŠããã
çæïŒ
- è€æ°ã®éçºè ãåããã¡ã€ã«ã§äœæ¥ããŠããå Žåãã³ã³ããªã¯ãã®ãªã¹ã¯ãé«ãã
- æ©èœãå®éšã®åé¢ãã§ããªãã
- å€§èŠæš¡ãŸãã¯è€éãªãããžã§ã¯ãã«ã¯é©ããŠããªãã
äŸïŒã·ã³ãã«ãªãŠã§ããµã€ããéçºããŠããå°èŠæš¡ãªãŠã§ãéçºããŒã ãæ³åããŠã¿ãŠãã ããã圌ãã¯å
šå¡ãçŽæ¥mainãã©ã³ãã«ã³ãããããŸãã圌ãã广çã«ã³ãã¥ãã±ãŒã·ã§ã³ãåãã倿Žã調æŽããŠããéããããã¯ããŸãæ©èœããŸãã
2. ãã£ãŒãã£ãŒãã©ã³ãã¯ãŒã¯ãããŒ
ãã£ãŒãã£ãŒãã©ã³ãã¯ãŒã¯ãããŒã¯ããã¹ãŠã®æ©èœéçºãå°çšã®ãã©ã³ãã«åé¢ããŸããããã«ãããè€æ°ã®éçºè ãäºãã«å¹²æžããããšãªããç°ãªãæ©èœã«åæã«åãçµãããšãã§ããŸãã
ä»çµã¿ïŒ
- éçºè
ã¯ã
mainãã©ã³ããåºã«ãåæ©èœããšã«æ°ãããã©ã³ããäœæããŸãã - 倿Žãå ãããã£ãŒãã£ãŒãã©ã³ãã«ã³ãããããŸãã
- æ©èœã宿ããããå€ãã®å Žåãã«ãªã¯ãšã¹ãã䜿çšããŠããã£ãŒãã£ãŒãã©ã³ãã
mainãã©ã³ãã«ããŒãžããŸãã
é·æïŒ
- æ©èœã®åªããåé¢ã
- 䞊è¡éçºãå¯èœã
- ããŒãžåã®ã³ãŒãã¬ãã¥ãŒãå¯èœã
çæïŒ
- éäžåã¯ãŒã¯ãããŒãããè€éã
- ãã©ã³ã管çã«èŠåŸãæ±ããããã
äŸïŒã¢ãã€ã«ã¢ããªãéçºããŠããããŒã ã¯ãæ°ããæ¯æãæ¹æ³ã®è¿œå ãããã·ã¥éç¥ã®å®è£ ãªã©ãåæ°æ©èœã«å¯ŸããŠãã£ãŒãã£ãŒãã©ã³ãã䜿çšããŸããããã«ãããç°ãªãéçºè ãç¬ç«ããŠäœæ¥ã§ããäžå®å®ãªã³ãŒããã¡ã€ã³ã®ã³ãŒãããŒã¹ã«å ¥ããªãããã«ããŸãã
3. Gitflowã¯ãŒã¯ãããŒ
Gitflowã¯ãç°ãªãç®çã®ããã«ç¹å®ã®ãã©ã³ãã¿ã€ããå®çŸ©ãããããæ§é åãããã¯ãŒã¯ãããŒã§ããã¹ã±ãžã¥ãŒã«ããããªãªãŒã¹ããããããžã§ã¯ãã§ãã䜿çšãããŸãã
äž»èŠãªãã©ã³ãïŒ
main: æ¬çªç°å¢ã«å¯Ÿå¿ããã³ãŒãã衚ããŸããdevelop: æ©èœãçµ±åããæ°ãããã£ãŒãã£ãŒãã©ã³ãã®ããŒã¹ãšããŠæ©èœããŸããfeature/*: æ°æ©èœã®éçºçšãrelease/*: ãªãªãŒã¹ã®æºåçšãhotfix/*: æ¬çªç°å¢ã®ãã°ä¿®æ£çšã
ä»çµã¿ïŒ
- æ°ããæ©èœã¯
developãããã©ã³ããããŸãã - ãªãªãŒã¹ãèšç»ããããšã
developããreleaseãã©ã³ããäœæãããŸãã - ãªãªãŒã¹ã«ç¹åãããã°ä¿®æ£ã¯
releaseãã©ã³ãã«ã³ããããããŸãã releaseãã©ã³ãã¯mainãšdevelopã®äž¡æ¹ã«ããŒãžãããŸãã- ããããã£ãã¯ã¹ã¯
mainãããã©ã³ããããä¿®æ£åŸãmainãšdevelopã®äž¡æ¹ã«ããŒãžãããŸãã
é·æïŒ
- ãªãªãŒã¹ãšããããã£ãã¯ã¹ã管çããããã®æç¢ºã«å®çŸ©ãããããã»ã¹ã
- ã¹ã±ãžã¥ãŒã«ããããªãªãŒã¹ãµã€ã¯ã«ãæã€ãããžã§ã¯ãã«é©ããŠããã
çæïŒ
- åŠç¿ãšå®è£ ãè€éã
- ã·ã³ãã«ãªãããžã§ã¯ããç¶ç¶çããªããªãŒç°å¢ã«ã¯éå°ãªå Žåãããã
- å€ãã®ãã©ã³ã管çãå¿ èŠã
äŸïŒååæããšã«ã¡ãžã£ãŒããŒãžã§ã³ããªãªãŒã¹ãããšã³ã¿ãŒãã©ã€ãºãœãããŠã§ã¢ãéçºããŠããäŒæ¥ã¯ãGitflowã䜿çšããŠãªãªãŒã¹ãµã€ã¯ã«ã管çããããããã£ãã¯ã¹ãçŸåšããã³å°æ¥ã®ãªãªãŒã¹ã®äž¡æ¹ã«é©çšãããããã«ãããããããŸããã
4. GitHub Flow
GitHub Flowã¯ãç¶ç¶çããªããªãŒã«æé©åããããGitflowã®ããã·ã³ãã«ãªä»£æ¿æ¡ã§ããé »ç¹ãªãªãªãŒã¹ãšè»œéãªãã©ã³ãã¢ãã«ã«çŠç¹ãåœãŠãŠããŸãã
ä»çµã¿ïŒ
mainãã©ã³ãã«ãããã®ã¯ãã¹ãŠãããã€å¯èœã§ãã- äœãæ°ããäœæ¥ãå§ããã«ã¯ã
mainãã説æçãªååã®ãã©ã³ããäœæããŸãã - ãã®ãã©ã³ãã«ããŒã«ã«ã§ã³ããããã宿çã«ãµãŒããŒäžã®åãååã®ãã©ã³ãã«äœæ¥ãããã·ã¥ããŸãã
- ãã£ãŒãããã¯ãå©ããå¿ èŠãªãšãããŸãã¯ãã©ã³ãã®æºåãã§ãããšæã£ããããã«ãªã¯ãšã¹ããéããŸãã
- ä»ã®èª°ãããã«ãªã¯ãšã¹ããã¬ãã¥ãŒããŠæ¿èªããåŸãããã
mainã«ããŒãžã§ããŸãã - ããŒãžãããŠ
mainã«ããã·ã¥ãããããããã«ãããã€ã§ããŸãã
é·æïŒ
- ã·ã³ãã«ã§çè§£ããããã
- ç¶ç¶çããªããªãŒã«é©ããŠããã
- é »ç¹ãªçµ±åãšãã¹ãã奚å±ããã
çæïŒ
- å ç¢ãªãã¹ããšãããã€ã®ãã€ãã©ã€ã³ãå¿ èŠã
- 峿 ŒãªãªãªãŒã¹ãµã€ã¯ã«ãæã€ãããžã§ã¯ãã«ã¯é©ããŠããªãå Žåãããã
äŸïŒç¶ç¶çãããã€ãè¡ããŠã§ãã¢ããªã±ãŒã·ã§ã³ã«åãçµãã§ããããŒã ã¯ãGitHub Flowã䜿çšããŠæ©èœããã°ä¿®æ£ãè¿ éã«å埩ãããããããŸããã圌ãã¯ãã£ãŒãã£ãŒãã©ã³ããäœæããã¬ãã¥ãŒã®ããã«ãã«ãªã¯ãšã¹ããéãããã«ãªã¯ãšã¹ããããŒãžããããšããã«æ¬çªç°å¢ã«ãããã€ããŸãã
5. GitLab Flow
GitLab Flowã¯ãæ©èœé§åéçºãšèª²é¡è¿œè·¡ãçµã¿åãããGitã®äœ¿çšã«é¢ããäžé£ã®ã¬ã€ãã©ã€ã³ã§ããGitHub Flowãåºç€ãšãããªãªãŒã¹ãšç°å¢ã管çããããã®ããå€ãã®æ§é ã远å ããŸãã
äž»èŠãªååïŒ
- ãã¹ãŠã®å€æŽã«ãã£ãŒãã£ãŒãã©ã³ãã䜿çšããã
- ã³ãŒãã¬ãã¥ãŒã«ããŒãžãªã¯ãšã¹ãïŒãã«ãªã¯ãšã¹ãïŒã䜿çšããã
- ç°ãªããã©ã³ãããç°ãªãç°å¢ã«ãããã€ããïŒäŸïŒæ¬çªç°å¢ã¯
mainãã¹ããŒãžã³ã°ã¯pre-productionïŒã - ãªãªãŒã¹ã®æºåã«ãªãªãŒã¹ãã©ã³ãã䜿çšããïŒãªãã·ã§ã³ïŒã
é·æïŒ
- æè»ã§é©å¿æ§ã®é«ããã¬ãŒã ã¯ãŒã¯ãæäŸããã
- 課é¡è¿œè·¡ã·ã¹ãã ãšããŸãçµ±åããã
- è€æ°ã®ç°å¢ãšãªãªãŒã¹æŠç¥ããµããŒãããã
çæïŒ
- GitHub Flowãããè€éã«ãªãå¯èœæ§ãããã
- ç°å¢ãšãã©ã³ãæŠç¥ã®æ éãªèšç»ãå¿ èŠã
äŸïŒå€§èŠæš¡ãªãœãããŠã§ã¢ãããžã§ã¯ãã«åãçµãã§ããéçºããŒã ã¯ãGitLab Flowã䜿çšããŠæ©èœéçºãã³ãŒãã¬ãã¥ãŒãããã³ã¹ããŒãžã³ã°ç°å¢ãšæ¬çªç°å¢ãžã®ãããã€ã管çããŸãã圌ãã¯èª²é¡è¿œè·¡ã䜿çšããŠãã°ãæ©èœãªã¯ãšã¹ãã远跡ããã¡ãžã£ãŒãªãªãŒã¹ã®æºåããããšãã«ãªãªãŒã¹ãã©ã³ããäœæããŸãã
6. ãã©ã³ã¯ããŒã¹éçº
ãã©ã³ã¯ããŒã¹éçºïŒTBDïŒã¯ãéçºè
ãã³ãŒãã®å€æŽãã§ããã ãé »ç¹ã«ãçæ³çã«ã¯1æ¥ã«è€æ°åãmainãã©ã³ãïŒããã©ã³ã¯ãïŒã«çŽæ¥çµ±åãããœãããŠã§ã¢éçºã¢ãããŒãã§ããããã¯ãæ©èœãé·æéåç¶ãããã©ã³ãã§éçºãããããäœãé »åºŠã§mainã«ããŒãžãããGitflowã®ãããªãã©ã³ãã¢ãã«ãšã¯å¯Ÿç
§çã§ãã
äž»èŠãªå®è·µæ¹æ³ïŒ
- é »ç¹ãªçµ±åïŒéçºè
ã¯1æ¥ã«è€æ°åã
mainã«å€æŽãã³ãããããŸãã - å°ãããã€ã³ã¯ãªã¡ã³ã¿ã«ãªå€æŽïŒå€æŽã¯å°ãã管çããããéšåã«åå²ãããã³ã³ããªã¯ãã®ãªã¹ã¯ãæå°éã«æããŸãã
- ãã£ãŒãã£ãŒãã°ã«ïŒæ°æ©èœã¯ãã°ãã°ãã£ãŒãã£ãŒãã°ã«ã®èåŸã«é ãããæºåãæŽããŸã§ãŠãŒã¶ãŒã«å
¬éãããããšãªã
mainã«çµ±åã§ããŸãã - èªåãã¹ãïŒå€æŽãã³ãŒãããŒã¹ãå£ããªãããšãä¿èšŒããããã«ãå æ¬çãªèªåãã¹ããäžå¯æ¬ ã§ãã
- ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³/ç¶ç¶çããªããªãŒïŒCI/CDïŒïŒTBDã¯ãã³ãŒã倿Žãèªåçã«ãã«ãããã¹ãããããã€ããããã«CI/CDãã€ãã©ã€ã³ã«å€§ããäŸåããŠããŸãã
é·æïŒ
- ãã£ãŒãããã¯ãµã€ã¯ã«ã®é«éåïŒé »ç¹ãªçµ±åã«ãããéçºè ã¯å€æŽã«å¯Ÿãããã£ãŒãããã¯ãè¿ éã«åŸãããšãã§ããŸãã
- ããŒãžã³ã³ããªã¯ãã®åæžïŒå€æŽãé »ç¹ã«çµ±åããããšã§ãããŒãžã³ã³ããªã¯ãã®ãªã¹ã¯ãæå°éã«æããããŸãã
- ã³ã©ãã¬ãŒã·ã§ã³ã®åäžïŒTBDã¯ãéçºè ã坿¥ã«ååããé »ç¹ã«ã³ãã¥ãã±ãŒã·ã§ã³ããšãããšã奚å±ããŸãã
- åžå Žæå ¥ãŸã§ã®æéççž®ïŒéçºããã»ã¹ãåçåããããšã§ãTBDã¯ããŒã ãæ©èœããã°ä¿®æ£ãããè¿ éã«æäŸããã®ã«åœ¹ç«ã¡ãŸãã
çæïŒ
- 匷ãèŠåŸãå¿ èŠïŒTBDã¯ãéçºè ã峿 Œãªã³ãŒãã£ã³ã°æšæºãšãã¹ããã©ã¯ãã£ã¹ãéµå®ããå¿ èŠããããŸãã
- å ç¢ãªèªååãå¿ é ïŒå æ¬çãªèªåãã¹ããšCI/CDãã€ãã©ã€ã³ãäžå¯æ¬ ã§ãã
- å°å ¥ãå°é£ãªå ŽåãããïŒãã©ã³ãã¢ãã«ã«æ £ããŠããããŒã ã«ãšã£ãŠãTBDãžã®ç§»è¡ã¯é£ããå ŽåããããŸãã
äŸïŒå€ãã®åãã®éããŠã§ãäŒæ¥ã¯ãæ©èœããã°ä¿®æ£ãè¿ éã«å埩ããããã«ãã©ã³ã¯ããŒã¹éçºã䜿çšããŠããŸãã圌ãã¯èªåãã¹ããšç¶ç¶çãããã€ã«å€§ããäŸåããŠã倿Žãå®å šã«çµ±åããã³ãããã€ãããããšãä¿èšŒããŸãã
é©åãªã¯ãŒã¯ãããŒã®éžæ
æé©ãªGitã¯ãŒã¯ãããŒã¯ã以äžãå«ãããŸããŸãªèŠå ã«ãã£ãŠæ±ºãŸããŸãïŒ
- ããŒã èŠæš¡ïŒå°èŠæš¡ããŒã ã¯ãéäžåã¯ãŒã¯ãããŒããã£ãŒãã£ãŒãã©ã³ãã¯ãŒã¯ãããŒã®ãããªã·ã³ãã«ãªã¯ãŒã¯ãããŒã§ååãããããŸããããå€§èŠæš¡ããŒã ã¯GitflowãGitLab Flowã®ãããªããæ§é åãããã¢ãããŒãããæ©æµãåããå¯èœæ§ããããŸãã
- ãããžã§ã¯ãã®è€éãïŒè€æ°ã®æ©èœãšãªãªãŒã¹ãæã€è€éãªãããžã§ã¯ãã§ã¯ãããæŽç·Žãããã¯ãŒã¯ãããŒãå¿ èŠã«ãªãå ŽåããããŸãã
- ãªãªãŒã¹ãµã€ã¯ã«ïŒã¹ã±ãžã¥ãŒã«ããããªãªãŒã¹ããããããžã§ã¯ãã¯Gitflowããæ©æµãåããå¯èœæ§ããããç¶ç¶çããªããªãŒãè¡ããããžã§ã¯ãã¯GitHub Flowããã©ã³ã¯ããŒã¹éçºã奜ããããããŸããã
- ããŒã ã®çµéšïŒGitã«æ £ããŠããªãããŒã ã¯ãããã·ã³ãã«ãªã¯ãŒã¯ãããŒããå§ããçµéšãç©ãã«ã€ããŠåŸã ã«ããè€éãªã¢ãããŒããæ¡çšããããšãã§ããŸãã
- çµç¹æåïŒã¯ãŒã¯ãããŒã¯ãçµç¹ã®æåãéçºãã©ã¯ãã£ã¹ãšäžèŽããŠããå¿ èŠããããŸãã
以äžã¯ãäž»èŠãªèæ ®äºé ããŸãšãã衚ã§ãïŒ
| ã¯ãŒã¯ãã㌠| ããŒã èŠæš¡ | ãããžã§ã¯ãã®è€éã | ãªãªãŒã¹ãµã€ã¯ã« | äž»ãªå©ç¹ | äž»ãªæ¬ ç¹ |
|---|---|---|---|---|---|
| éäžåã¯ãŒã¯ãã㌠| å° | äœ | ç¡é¢ä¿ | ã·ã³ãã«ãçè§£ãããã | ã³ã³ããªã¯ãã®ãªã¹ã¯ãé«ããæ©èœã®åé¢ããªã |
| ãã£ãŒãã£ãŒãã©ã³ãã¯ãŒã¯ãã㌠| å°ïœäž | äž | ç¡é¢ä¿ | è¯å¥œãªæ©èœåé¢ã䞊è¡éçºãå¯èœ | éäžåã¯ãŒã¯ãããŒããè€é |
| Gitflow | äžïœå€§ | é« | ã¹ã±ãžã¥ãŒã«ããããªãªãŒã¹ | æç¢ºãªãªãªãŒã¹ããã»ã¹ãããããã£ãã¯ã¹ã广çã«ç®¡ç | è€éãã·ã³ãã«ãªãããžã§ã¯ãã«ã¯éå° |
| GitHub Flow | å°ïœäž | äž | ç¶ç¶çããªããªãŒ | ã·ã³ãã«ãç¶ç¶çããªããªãŒã«é©ããŠãã | å ç¢ãªãã¹ããšãããã€ãã€ãã©ã€ã³ãå¿ èŠ |
| GitLab Flow | äžïœå€§ | é« | æè» | é©å¿æ§ãé«ãã課é¡è¿œè·¡ãšã®çµ±åãè¯å¥œ | GitHub Flowããè€éã«ãªãå¯èœæ§ããã |
| ãã©ã³ã¯ããŒã¹éçº | ä»»æ | ä»»æ | ç¶ç¶çããªããªãŒ | ãã£ãŒãããã¯ãéããããŒãžã³ã³ããªã¯ãã®åæžãã³ã©ãã¬ãŒã·ã§ã³ã®åäž | 匷ãèŠåŸãšå ç¢ãªèªååãå¿ èŠ |
Gitã¯ãŒã¯ãããŒã®ãã¹ããã©ã¯ãã£ã¹
éžæããã¯ãŒã¯ãããŒã«é¢ä¿ãªãã以äžã®ãã¹ããã©ã¯ãã£ã¹ã«åŸãããšã§ãã¹ã ãŒãºã§å¹ççãªéçºããã»ã¹ãä¿èšŒãããŸãïŒ
- é »ç¹ã«ã³ãããããïŒå°ãããããé »ç¹ãªã³ãããã¯ã倿Žã®å±¥æŽãçè§£ããããããå¿ èŠã«å¿ããŠä»¥åã®ç¶æ ã«æ»ãããšã容æã«ããŸãã
- æç¢ºãªã³ãããã¡ãã»ãŒãžãæžãïŒã³ãããã¡ãã»ãŒãžã¯ã倿Žã®ç®çãæç¢ºã«èª¬æããå¿ èŠããããŸããäžè²«ãããã©ãŒãããã䜿çšããŸãïŒäŸïŒåœä»€åœ¢ããã°ãä¿®æ£ããæ©èœã远å ãïŒã
- æå³ã®ãããã©ã³ãåã䜿çšããïŒãã©ã³ãåã¯èª¬æçã§ããã©ã³ãã®ç®çãåæ ããŠããå¿
èŠããããŸãïŒäŸïŒ
feature/add-payment-methodãbugfix/fix-login-issueïŒã - ã³ãŒãã¬ãã¥ãŒã宿œããïŒã³ãŒãã¬ãã¥ãŒã¯ãæœåšçãªåé¡ãæ©æã«çºèŠããã³ãŒãã®å質ãåäžãããããŒã ã¡ã³ããŒéã§ç¥èãå ±æããã®ã«åœ¹ç«ã¡ãŸãã
- ãã¹ããèªååããïŒèªåãã¹ãã¯ã倿Žãã³ãŒãããŒã¹ãå£ããªãããšãä¿èšŒããã³ãŒãã®å質ãç¶æããã®ã«åœ¹ç«ã¡ãŸãã
- Gitãã¹ãã£ã³ã°ãã©ãããã©ãŒã ã䜿çšããïŒGitHubãGitLabãBitbucketã®ãããªãã©ãããã©ãŒã ã¯ããã«ãªã¯ãšã¹ããã³ãŒãã¬ãã¥ãŒããŒã«ãCI/CDçµ±åãªã©ã®æ©èœãæäŸããŸãã
- ã¯ãŒã¯ãããŒãææžåããïŒéžæããã¯ãŒã¯ãããŒãæç¢ºã«ææžåãããã¹ãŠã®ããŒã ã¡ã³ããŒã«äŒããŸãã
- ããŒã ããã¬ãŒãã³ã°ããïŒããŒã ã¡ã³ããŒãGitãšéžæããã¯ãŒã¯ãããŒãçè§£ãã广çã«äœ¿çšã§ããããã«ããã¬ãŒãã³ã°ãšãªãœãŒã¹ãæäŸããŸãã
ç¹å®ã®ã·ããªãªã®ããã®å®è·µçãªãã³ã
ã·ããªãª1ïŒãªãŒãã³ãœãŒã¹ãããžã§ã¯ã
ãªãŒãã³ãœãŒã¹ãããžã§ã¯ãã§ã¯ããã«ãªã¯ãšã¹ãã䌎ããã£ãŒãã£ãŒãã©ã³ãã¯ãŒã¯ãããŒãåŒ·ãæšå¥šãããŸããããã«ãããã³ã³ããªãã¥ãŒã¿ãŒã¯ã¡ã€ã³ã®ã³ãŒãããŒã¹ã«çŽæ¥åœ±é¿ãäžããããšãªã倿Žãæåºã§ããŸããã¡ã³ãããŒã«ããã³ãŒãã¬ãã¥ãŒãå質ãšäžè²«æ§ãä¿èšŒããŸãã
ã·ããªãª2ïŒã¿ã€ã ãŸãŒã³ããŸããã§åããªã¢ãŒãããŒã
è€æ°ã®ã¿ã€ã ãŸãŒã³ã«ãŸããããªã¢ãŒãããŒã ã®å ŽåãGitLab Flowããåªããèªåãã¹ããåãããã©ã³ã¯ããŒã¹éçºã®ãããªæç¢ºã«å®çŸ©ãããã¯ãŒã¯ãããŒãäžå¯æ¬ ã§ããé å»¶ãé¿ããããã«ã¯ãæç¢ºãªã³ãã¥ãã±ãŒã·ã§ã³ãã£ãã«ãšéåæã®ã³ãŒãã¬ãã¥ãŒããã»ã¹ãéèŠã§ãã
ã·ããªãª3ïŒãã¹ãã«ãã¬ããžãéå®çãªã¬ã¬ã·ãŒãããžã§ã¯ã
ãã¹ãã«ãã¬ããžãéå®çãªã¬ã¬ã·ãŒãããžã§ã¯ãã§äœæ¥ããå Žåããã£ãŒãã£ãŒãã©ã³ãã¯ãŒã¯ãããŒãæãå®å šãªã¢ãããŒãã§ããããšãå€ãã§ãããã°ãæ··å ¥ããããªã¹ã¯ãæå°éã«æããããã«ã培åºçãªæåãã¹ããšæ éãªã³ãŒãã¬ãã¥ãŒãäžå¯æ¬ ã§ãã
ã·ããªãª4ïŒã©ããããããã¿ã€ãã³ã°
ã©ããããããã¿ã€ãã³ã°ã§ã¯ãGitHub Flowãå°ãä¿®æ£ãããéäžåã¯ãŒã¯ãããŒã®ãããªããã·ã³ãã«ãªã¯ãŒã¯ãããŒã§ååãªå ŽåããããŸããçŠç¹ã¯ã¹ããŒããšå®éšã«ããããã峿 Œãªããã»ã¹ã¯å¿ èŠãªããããããŸããã
çµè«
é©åãªGitã¯ãŒã¯ãããŒãéžæããããšã¯ã广çãªã³ã©ãã¬ãŒã·ã§ã³ãšæåãããœãããŠã§ã¢éçºã«ãšã£ãŠæ¥µããŠéèŠã§ããããŸããŸãªã¯ãŒã¯ãããŒããã®é·æãšçæããããŠããŒã ãšãããžã§ã¯ãã®ç¹å®ã®ããŒãºãçè§£ããããšã§ãç¶æ³ã«æãé©ããã¢ãããŒããéžæã§ããŸããã¯ãŒã¯ãããŒã¯å³æ Œãªã«ãŒã«ããã¯ã§ã¯ãªããæéãšãšãã«é©å¿ãããæŽç·Žãããããšãã§ããã¬ã€ãã©ã€ã³ã§ããããšãå¿ããªãã§ãã ããã宿çã«ã¯ãŒã¯ãããŒãè©äŸ¡ããéçºããã»ã¹ãæé©åããããã«å¿ èŠã«å¿ããŠèª¿æŽãè¡ã£ãŠãã ããã
Gitã¯ãŒã¯ãããŒããã¹ã¿ãŒããããšã§ãéçºããŒã ã¯ãèŠæš¡ãå ŽæããŸãã¯ãããžã§ã¯ãã®è€éãã«é¢ä¿ãªããããåªãããœãããŠã§ã¢ããããéããããå調çã«æ§ç¯ã§ããããã«ãªããŸãã